home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * "sitsk.h"
- *-------------------------------------------------------------------------
- * Task library
- * Copyright (c) 1993, TaroPYON
- *************************************************************************/
-
- #ifndef _SITSK_H
- #define _SITSK_H
-
- #include <setjmp.h>
-
- #ifndef _SIWIN_H
- # include <siwin.h>
- #endif
- #ifndef _SIEV_H
- # include <siev.h>
- #endif
-
- typedef struct _tskwin_t /* タスクウィンドゥ構造体 */
- {
- struct _tskwin_t *next, *prev;
-
- unsigned int att; /* 属性 */
- unsigned int stt; /* ステータス */
- int active; /* アクティブフラグ */
-
- EV_T *ev; /* イベント */
- WIN_T *win;
- FRAME_T fr; /* ユーザー作業用 */
- FRAME_T frTop; /* トップフレーム */
- FRAME_T frLeft; /* レフトフレーム */
- FRAME_T frRight; /* ライトフレーム */
- FRAME_T frBottom; /* ボトムフレーム */
- void *tsk; /* 自身のタスク */
-
- struct
- { struct { int xs,ys;} max; /* 最大 */
- struct { int xs,ys;} std; /* 標準 */
- struct { int xs,ys;} min; /* 最小 */
- } winsiz;
-
- int winTyp; /* ウィンドゥのタイプ */
- int (*sysFunc)(struct _tskwin_t *);
- /* システム表示用 */
-
- int (*usrFunc)(struct _tskwin_t *);
- /* ユーザー表示用 */
- void *ptr; /* ユーザー用ポインタ */
- char winName[128]; /* ウィンドゥ名 */
- } TSKWIN_T;
-
- #define TSKWIN_ATT_MAIN (0x8000_000) /* タスク・メインウィンドゥ */
-
- #define TSKWIN_STT_ACTIVE (0x0000_0001) /* アクティブ・ウィンドゥ */
-
-
- typedef struct _tsk_t /* タスク構造体 */
- {
- struct _tsk_t *next, *prev;
-
- unsigned int tskNo;
- unsigned int att; /* 属性 */
- unsigned int stt; /* ステータス */
-
- jmp_buf jmpbuf; /* ロングジャンプ用 */
-
- EV_T *ev; /* イベント */
-
- TSKWIN_T *winCrt; /* カレントウィンドゥ */
- TSKWIN_T *winTop;
- TSKWIN_T *winLast;
-
- int (*ctrFunc)(struct _tsk_t *, int, ... );
- void *ptr;
- char tskName[128]; /* タスク名 */
- } TSK_T;
-
- typedef struct
- {
- jmp_buf jmpbuf; /* ロングジャンプ用 */
- EV_T *ev;
-
- int tskNum;
- TSK_T *tskCrt; /* アクティブタスク */
- TSK_T *tskTop;
- TSK_T *tskLast;
- } TSKCTRL_T;
-
- extern TSKCTRL_T *SiTskCt;
-
- /*************************************************************************
- * タスクステータス
- *************************************************************************/
-
- #define TSKSTT_OFF (0)
- #define TSKSTT_SLEEP (1)
- #define TSKSTT_WAKE (2)
-
- /*************************************************************************
- * タスクメッセージ
- *************************************************************************/
-
- #define TSKMSG_INIT (0x0001) /* スタートアップイニシャライズ */
- #define TSKMSG_TERM (0x0002) /* ターミネートイニシャライズ */
- #define TSKMSG_START (0x0011) /* タスク始動 */
- #define TSKMSG_END (0x0012) /* タスク停止 */
- #define TSKMSG_ACTIVE (0x0013) /* タスク活動開始(RESUME) */
- #define TSKMSG_INACTIVE (0x0014) /* タスク活動停止(SUSPEND) */
- #define TSKMSG_PAUSE (0x0021) /* タスクポーズ */
- #define TSKMSG_CONTINUE (0x0022) /* タスクポーズ解除 */
- #define TSKMSG_CHKCLOSE (0x0031) /* タスククローズチェック */
- #define TSKMSG_CLOSE (0x0032) /* タスククローズ実行 */
- #define TSKMSG_CHGICON (0x0041) /* アイコン化 */
- #define TSKMSG_CHGWIN (0x0042) /* ウィンドゥ化 */
- #define TSKMSG_EVIDL (0x0080) /* アイドリング状態 */
- #define TSKMSG_EVQUE (0x0081) /* イベントデータの送信 */
-
- #define TSKMSG_WINLMENU (0x0101) /* ウィンドゥレフトメニュー */
- #define TSKMSG_WINRMENU (0x0102) /* ウィンドゥライトメニュー */
-
- /*----------------------------------------------------------------------*/
- #define TSKJMP_CLOSE_WIN (1) /* ウィンドゥのクローズ */
- #define TSKJMP_CLOSE_TSK (2) /* タスク全体のクローズ */
-
- /*----------------------------------------------------------------------*/
- extern int TSK_init(void);
- extern void TSK_term(void);
- extern int TSK_link( TSK_T *newTsk );
- extern TSK_T *TSK_open( CONST char *name, int (*func)(TSK_T *,int,...), void *ptr );
- extern int TSK_unlink( TSK_T *freTsk );
- extern void TSK_close( TSK_T *tsk );
-
- extern TSKWIN_T *TSK_win_open( TSK_T *tsk, int prio, int (*func)(TSKWIN_T *), void *ptr );
- extern int TSK_win_close( TSKWIN_T *tskwin );
- extern int TSK_win_active( TSKWIN_T *tskwin );
- extern int TSK_win_inactive( TSKWIN_T *tskwin );
-
- extern int tsk_evClose( int evt, EVDAT_T *evdat );
- extern int TSK_chkClose( TSK_T *tsk );
-
- extern int TSK_win_setTypStd( TSKWIN_T *tskwin );
-
- extern int TSK_execSystem(void);
-
- extern int tsk_evIcon( int evt, EVDAT_T *evdat );
- extern int TSK_chgIcon( TSK_T *tsk );
-
- #endif
-